// 引入接口文件
import { deleteActivityArea, generateQrCode } from './activityAreaServ'

// 对象和JSON字符串互转
import { parse } from 'qs'
// 弹出消息框
import { message } from 'antd'
// 日期处理对象
import moment from 'moment'
/* isEmpty 对象是否为空
 * isArray 对象是否数组
 * cloneDeep 对象深拷贝
 */
import { isEmpty, isArray, cloneDeep, merge } from 'lodash'
// 引入路由对象
import { hashHistory } from 'dva/router'
import { makeAddress } from "utils/util"

// 初始默认状态
const state = {
    channel: 2,
    biz: {
        queryForm: {}
    },
    areaList: [],
    ModalVisible: false,
    selectItem: {},
    qrCode: "",
    showModal: false
}

//处理select所需数据格式
function HandleSelectOption(arr) {
    let newArr = []
    arr.map(item => {
        let OpiconObj = {}
        OpiconObj.value = item
        OpiconObj.label = item
        newArr.push(OpiconObj)
    })
    return newArr
}

// 声明module
const tmpModule = {
    namespace: 'infoListAdminModel',
    // 默认状态
    state: cloneDeep(state),
    // 入口函数(先执行)
    subscriptions: {
        setup({ dispatch, history }) {
            history.listen(({ pathname, query }) => {
                    // 页面路由匹配时执行
                    if ('' + tmpModule.pathname === '' + pathname) {
                        //每次进来页面更新数据 重置state
                    } // end if
                }) // end listen
        },
    },

    // 方法列表
    effects: {
        * deleteActivityArea({ payload }, { put, call, select }) {
            try {
                let selectItem = yield select(state => state[tmpModule.namespace])
                let { msg, success } = yield call(deleteActivityArea, payload)
                if (success) {
                    message.success('删除成功')
                } else {
                    message.error('删除失败')
                }
                // 更新数据
                selectItem.biz.refreshListDatas(true)
            } catch (e) {

            }
        },
        * generateQrCode({ payload }, { put, call, select }) {
            try {

                yield put({ type: 'updateStore', payload: { imgLoading: true } })
                let data1 = yield call(generateQrCode, {...payload })
                    // let data2 = yield call(generateQrCode, {...payload,channelType:1,channelWxacode:'live'})
                if (data1.success) {
                    if (data1.msg) {
                        yield put({ type: 'updateStore', payload: { zmzjCode: data1.msg } })
                    } else {

                    }
                }
                // if(data2.success){
                // 	if(data2.msg){
                // 		yield put({ type: 'updateStore', payload: { zysqCode:data2.msg} })
                // 	}else{

                // 	}
                // }
                yield put({ type: 'updateStore', payload: { imgLoading: false } })

            } catch (e) {

            }
        },
    },

    // 存入状态机
    reducers: {
        updateStore(preState, action) {
            return Object.assign({}, preState, action.payload)
        },
    }
}

export default tmpModule